#include "led.h"
#include "key.h"
#include "delay.h"
#include "usart.h"
#include <stdio.h>
#include "tim5.h"

int main(void)
{
    // 初始化
    USART_Init();
    TIM5_Init();

    printf("general timer program start\n");

    // 开启定时器
    TIM5_Start();

    // 定义占空比和变化方向
    uint8_t dutyCycle = 0;
    uint8_t dir = 0;

    while(1)
    {
        // 判断当前占空比变化方向，决定新的占空比
        if (dir == 0)
        {
            // 占空比增大
            dutyCycle += 1;
            if (dutyCycle >= 99)
            {
                dir = 1; // 如果增到最大亮度，就开始减小占空比
            }
        }
        else
        {
            // 占空比减小
            dutyCycle -= 1;
            if (dutyCycle <= 1)
            {
                dir = 0; // 如果减到最小亮度，就开始增大占空比
            }
        }

        // 设置占空比
        TIM5_SetDutyCycle(dutyCycle);

        // 延迟20ms
        Delay_ms(20);
    }
}
